package cn.bugstack.chatgpt.data.config;

import com.github.houbb.sensitive.word.bs.SensitiveWordBs;
import com.github.houbb.sensitive.word.utils.InnerWordCharUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

// 敏感词配置
@Slf4j
@Configuration

public class SensitiveWordConfig {

    @Bean
    public SensitiveWordBs sensitiveWordBs() {

        return SensitiveWordBs.newInstance()
                .wordReplace((stringBuilder, chars, wordResult, iWordContext) -> {
                    String sensitiveWord = InnerWordCharUtils.getString(chars, wordResult);
                    log.info("检测到敏感词: {}", sensitiveWord);
                })
                .ignoreCase(true) // 忽略大小写
                .ignoreWidth(true) // 全角半角
                .ignoreNumStyle(true) // 数字样式
                .ignoreChineseStyle(true) // 中文样式
                .ignoreEnglishStyle(true) // 英文样式
                .ignoreRepeat(false) // 重复检测
                .enableNumCheck(true) // 开启或关闭数字检测
                .enableEmailCheck(true) // 邮箱检测
                .enableUrlCheck(true) // URL检测
                .enableWordCheck(true) // 敏感词检测
                .numCheckLen(1024) // 数字检测的最大长度为1024
                .init();

    }

}





